<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
	<th:block th:include="include :: header('列表')" />
</head>
<body class="gray-bg">
    
     <div class="container-div">
		<div class="row">
			<div class="col-sm-12 search-collapse">
				<form id="formId">
					<div class="select-list">
						<ul>

							<li>
								时间：<input type="text" class="input_time" id="begin" placeholder="时间" name="begin"/>
							</li>

							<li>
								平台编号：<input type="text" name="code"/>
							</li>

<!--							<li>-->
<!--								渠道编号：<input type="text" name="chCode"/>-->
<!--							</li>-->

<!--							<li>-->
<!--								商户编号：<input type="text" name="mchCode"/>-->
<!--							</li>-->

							<li>
								支付状态：
								<select type="text" name="status">
									<option value="">所有</option>
									<option value="1">下单失败</option>
									<option value="2">下单超时</option>
									<option value="3">待支付</option>
									<option value="4">未支付</option>
									<option value="5">已支付</option>
								</select>
							</li>

<!--							<li>-->
<!--								商户名称：<input type="text" name="merchantName"/>-->
<!--							</li>-->

<!--							<li>-->
<!--								渠道名称：<input type="text" name="channelName"/>-->
<!--							</li>-->

							<li>
								支付类型名称：<input type="text" name="payKindName"/>
							</li>

							<li>
								钱包类型名称：<input type="text" name="walletKindName"/>
							</li>

							<li>
								商户通知状态：
								<select type="text" name="merchantNotifyStatus">
									<option value="">所有</option>
									<option value="-1">无效</option>
									<option value="0">未通知</option>
									<option value="1">已通知</option>
								</select>
							</li>

							<li>
								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
								<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
							</li>
						</ul>
					</div>
				</form>
			</div>
			
	        <div class="btn-group-sm" id="toolbar" role="group">
				<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="merchantTransaction:transactionPay:export">
						<i class="fa fa-download"></i> 导出
				 </a>
			</div>
			<div class="col-sm-12 select-table table-striped">
				<table id="bootstrap-table" data-mobile-responsive="true"></table>
			</div>
		</div>
	</div>
    <div th:include="include :: footer"></div>
    <script th:inline="javascript">
        var editFlag = [[${@permission.hasPermi('merchantTransaction:transactionPay:edit')}]];
        var removeFlag = [[${@permission.hasPermi('merchantTransaction:transactionPay:remove')}]];
        //  = ctx + "transaction/transactionPay";
		var prefix = ctx + "merchantTransaction/transactionPay";

        var $form = $("#formId");
        // 初始化默认时间值
        var time = new Date();
        var y = time.getFullYear();
        var m = time.getMonth() + 1;
        var d = time.getDate();
        function add0(m) {
            return m < 10 ? '0' + m : m
        }
        var nowTime = y + '-' + add0(m) + "-" + add0(d);
        $form.find("input[name='begin']").val(nowTime);

        // 初始化查询
        function queryParams(params) {
            var search = $.table.queryParams(params);
            search.begin = $("#begin").val();
            return search;
        }


        $(function() {
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
				exportUrl: prefix + "/export",
                modalName: "支付交易",
                queryParams: queryParams,
		        showExport: true,
                columns: [{
		            checkbox: true
		        },
				{
					field : 'id', 
					title : '标识',
					visible: false
				},
				{
					field : 'begin',
					title : '开始时间',
					sortable: true
				},
				{
					field : 'code', 
					title : '平台编号',
					sortable: true
				},
				// {
				// 	field : 'chCode',
				// 	title : '渠道编号',
				// 	sortable: true
				// },
				{
					field : 'mchCode', 
					title : '商户编号',
					sortable: true
				},
				{
					field : 'fee', 
					title : '支付金额(元)',
					sortable: true,
                    formatter: function (value, row, index) {
						if(value != null) {
							var data = new Decimal(value).div(new Decimal(100.00)).toFixed(2);
							return data;
						}
                    }
				},
                {
                    field : 'subFee',
                    title : '申请金额(元)',
                    sortable: true,
                    formatter: function (value, row, index) {
						if(value != null) {
							var data = new Decimal(value).div(new Decimal(100.00)).toFixed(2);
							return data;
						}
                    }
                },
				// {
				// 	field : 'chFee',
				// 	title : '渠道入账(元)',
				// 	sortable: true,
                //     formatter: function (value, row, index) {
                //         var data = new Decimal(value).div(new Decimal(100.00));
                //         return data;
                //     }
				// },
				{
					field : 'mchFee', 
					title : '商户入账(元)',
					sortable: true,
                    formatter: function (value, row, index) {
						if(value != null) {
							var data = new Decimal(value).div(new Decimal(100.00)).toFixed(2);
							return data;
						}
                    }
				},
				// {
				// 	field : 'finFee',
				// 	title : '财务入账(元)',
				// 	sortable: true,
                //     formatter: function (value, row, index) {
                //         var data = new Decimal(value).div(new Decimal(100.00));
                //         return data;
                //     }
				// },
				{
					field : 'status', 
					title : '支付状态',
					sortable: true,
                    formatter: function (value, row, index) {
                        if(value === 1){
                            return '<span class="badge badge-danger">下单失败</span>';
                        }
                        if(value === 2){
                            return '<span class="badge badge-danger">下单超时</span>';
                        }
                        if (value === 3) {
                            return '<a class="btn btn-warning btn-xs ' + '" href="#" onclick= "orderConfirm(\'' + row.id + '\')"><i class="fa fa-refresh"></i>待支付</a> ';
                        }
                        if (value === 4) {
                            return '<span class="badge badge-danger">未支付</span>';
                        }
                        if (value === 5) {
                            return '<span class="badge badge-info">已支付</span>';
                        }
                    }
				},
                {
                    field : 'merchantNotifyStatus',
                    title : '商户通知状态',
                    sortable: true,
                    formatter: function (value, row, index) {
                        if (row.status === 4 || row.status === 5) {
                            if (value === 0) {
                                return '<a class="btn btn-danger btn-xs ' + '" href="#" onclick= "notifyConfirm(\'' + row.code + '\')"><i class="fa fa-refresh"></i>未通知</a> ';
                            }
                            if (value === 1) {
                                return '<span class="badge badge-info">已通知</span>';
                            }
                        } else {
                            return '<span class="badge badge-warning">无效</span>';
                        }
                    }
                },
				{
					field : 'merchantMethodId', 
					title : '商户支付方法标识',
					sortable: true,
					visible: false
				},
				{
					field : 'merchantMethodPayRate', 
					title : '商户支付费率',
					sortable: true
				},
				{
					field : 'merchantId',
					title : '商户标识',
					sortable: true,
					visible: false
				},
				{
					field : 'merchantName',
					title : '商户名称',
					sortable: true
				},
				{
					field : 'merchantCode',
					title : '商户编码',
					sortable: true
				},
				// {
				// 	field : 'channelMethodId',
				// 	title : '渠道支付方法标识',
				// 	sortable: true,
				// 	visible: false
				// },
				// {
				// 	field : 'channelMethodPayRate',
				// 	title : '渠道支付费率',
				// 	sortable: true
				// },
				// {
				// 	field : 'channelId',
				// 	title : '渠道标识',
				// 	sortable: true,
				// 	visible: false
				// },
				// {
				// 	field : 'channelName',
				// 	title : '渠道名称',
				// 	sortable: true
				// },
				// {
				// 	field : 'channelCode',
				// 	title : '渠道编码',
				// 	sortable: true
				// },
				{
					field : 'payKindId', 
					title : '支付方式标识',
					sortable: true,
					visible: false
				},
				{
					field : 'payKindName', 
					title : '支付类型名称',
					sortable: true
				},
				{
					field : 'payKindCode', 
					title : '支付类型编码',
					sortable: true
				},
				{
					field : 'walletKindId', 
					title : '钱包类型标识',
					sortable: true,
					visible: false
				},
				{
					field : 'walletKindName', 
					title : '钱包类型名称',
					sortable: true
				},
				{
					field : 'walletKindCode', 
					title : '钱包类型编码',
					sortable: true
				},
				{
					field : 'callbackUrl', 
					title : '通知地址',
					sortable: true,
                    visible: false
				},
				{
					field : 'redirectUrl',
					title : '跳转地址',
					sortable: true,
                    visible: false
				},
                {
                    field : 'expires',
                    title : '失效时间',
                    sortable: true,
                    visible: false
                },
                {
                    field : 'end',
                    title : '结束时间',
                    sortable: true
                },
                {
                    field : 'remarks',
                    title : '备注',
                },
		        {
		            title: '操作',
		            align: 'center',
		            formatter: function(value, row, index) {
		            	var actions = [];
						return actions.join('');
		            }
		        }]
            };
            $.table.init(options);
        });


        /*时间控件*/
        // laydate input_time 时间控件绑定
        if ($(".input_time").length > 0) {
            layui.use('laydate', function () {
                var com = layui.laydate;
                $(".input_time").each(function (index, item) {
                    var time = $(item);
                    // 控制控件外观
                    var type = time.attr("data-type") || 'date';
                    // 控制回显格式
                    var format = time.attr("data-format") || 'yyyy-MM-dd';
                    // 控制日期控件按钮
                    var buttons = time.attr("data-btn") || 'clear|now|confirm', newBtnArr = [];
                    // 日期控件选择完成后回调处理
                    var callback = time.attr("data-callback") || {};
                    if (buttons) {
                        if (buttons.indexOf("|") > 0) {
                            var btnArr = buttons.split("|"), btnLen = btnArr.length;
                            for (var j = 0; j < btnLen; j++) {
                                if ("clear" === btnArr[j] || "now" === btnArr[j] || "confirm" === btnArr[j]) {
                                    newBtnArr.push(btnArr[j]);
                                }
                            }
                        } else {
                            if ("clear" === buttons || "now" === buttons || "confirm" === buttons) {
                                newBtnArr.push(buttons);
                            }
                        }
                    } else {
                        newBtnArr = ['clear', 'now', 'confirm'];
                    }
                    com.render({
                        elem: item,
                        theme: 'molv',
                        trigger: 'click',
                        type: type,
                        format: format,
                        btns: newBtnArr,
                        done: function (value, data) {
                            if (typeof window[callback] != 'undefined'
                                && window[callback] instanceof Function) {
                                window[callback](value, data);
                            }
                        }
                    });
                });
            });
        }


        /**
		 * 支付确认，查询订单支付状态
         */
        function orderConfirm(id) {
            $.modal.loading("正在处理中，请稍后...");
            $.modal.disable();
            $.post(prefix + "/payConfirm", {'id':id},function (response) {
                if (response.code == 0) {
                    $.modal.alertSuccess("状态发生改变");
                    $.modal.closeLoading();
                    $.table.refresh();
                } else {
                    $.modal.alertError("状态未改变");
                    $.modal.closeLoading();
                    $.table.refresh();
                }
            });
        }

		function merchantNotify(id) {
			$.modal.loading("正在处理中，请稍后...");
			$.modal.disable();
			$.post(prefix + "/merchantNotify", {'id':id},function (response) {
				if (response.code == 0) {
					$.modal.alertSuccess(response.msg);
					$.modal.closeLoading();
					$.table.refresh();
				} else {
					$.modal.alertError(response.msg);
					$.modal.closeLoading();
                    $.table.refresh();
				}
			});
		}
    </script>
</body>
</html>